SRCS=$(shell ls *.cpp 2> /dev/null)
CXXOBJ_DEBUG=$(SRCS:.cpp=.od)
CXXOBJ_RELEASE=$(SRCS:.cpp=.o)
CSRCS=$(shell ls *.c 2> /dev/null)
COBJ_DEBUG=$(CSRCS:.c=.od)
COBJ_RELEASE=$(CSRCS:.c=.o)
CXX_FLAGS= -pg
C_FLAGS=
LD_FLAGS=
CXX=g++
CC=gcc
LD=g++
RM=rm -f

default: debug

all: debug release

debug: main_debug

release: main

clean:
	$(RM) *.od *.o main main_debug

%.od: %.cpp
	$(CXX) -g $(CXX_FLAGS) -c -o $@ $<

%.o: %.cpp
	$(CXX) -O2 $(CXX_FLAGS) -c -o $@ $<

%.od: %.c
	$(CC) -g $(C_FLAGS) -c -o $@ $<

%.o: %.c
	$(CC) -O2 $(C_FLAGS) -c -o $@ $<

main_debug: $(CXXOBJ_DEBUG) $(COBJ_DEBUG)
	$(LD) -g -pg $(LD_FLAGS) -o $@ $^
	
main: $(CXXOBJ_RELEASE) $(COBJ_RELEASE)
	$(LD) -O2 -pg $(LD_FLAGS) -o $@ $^
